/**
 *  @file ICollection.h
 */
#ifndef _ICOLLECTION_H_
#define _ICOLLECTION_H_

#include "../common/commontypes.h"

namespace cppflib
{

namespace collections
{

/**
 *  An interface for collection structure (List / Array) to implement
 */
class ICollection
{

public:
   /**
    *  Swap element of 2 slots
    */
   virtual void Swap(int i_1, int i_2) = 0;
   /**
    *  Retrieve ith pointer to the element  
    */
   virtual ptrany_t Element(int i) = 0;
};

} // end of namespace collections


} // end of namespace cppflib


#endif

